﻿using System.Collections.Generic;

namespace Microsoft.WowAddonStudio.FrameXml.Serialization
{
    public interface ISerializationObjectContainer
    {
        /// <summary>
        /// Determines whether the container contains a serialization object.
        /// </summary>
        /// <param name="serializationObject">The serialization object.</param>
        /// <returns>True, if the container contains the serialization object; False otherwise.</returns>
        bool Contains(SerializationObject serializationObject);

        /// <summary>
        /// Adds a serialization object.
        /// </summary>
        /// <param name="serializationObject">The serialization object.</param>
        void Add(SerializationObject serializationObject);

        /// <summary>
        /// Removes a layout frame.
        /// </summary>
        /// <param name="serializationObject">The serialization object.</param>
        void Remove(SerializationObject serializationObject);

        /// <summary>
        /// Gets the child serialization objects.
        /// </summary>
        /// <param name="includeInherited">A value indicating whether to include the inherited serialization objects.</param>
        IEnumerable<SerializationObject> GetChildren(bool includeInherited);

    }
}
